package com.jy.reservations.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jy.books.domain.Books;
import com.jy.common.annotation.Excel;
import com.jy.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 图书预留对象 reservations
 * 
 * @author ruoyi
 * @date 2025-05-30
 */
public class Reservations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预留ID，唯一标识一条预留记录 */
    @Excel(name = "预留ID，唯一标识一条预留记录")
    private Long reservationId;

    /** 预留用户ID */
    @Excel(name = "预留用户ID")
    private Long userId;

    /** 预留图书ID */
    @Excel(name = "预留图书ID")
    private Long bookId;

    /** 预留日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预留日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationDate;

    /** 预留状态 */
    @Excel(name = "预留状态")
    private String status;

    /** 预留实现日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预留实现日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fulfillmentDate;

    /** 图书信息信息 */
    private List<Books> booksList;

    public void setReservationId(Long reservationId) 
    {
        this.reservationId = reservationId;
    }

    public Long getReservationId() 
    {
        return reservationId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setBookId(Long bookId) 
    {
        this.bookId = bookId;
    }

    public Long getBookId() 
    {
        return bookId;
    }

    public void setReservationDate(Date reservationDate) 
    {
        this.reservationDate = reservationDate;
    }

    public Date getReservationDate() 
    {
        return reservationDate;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setFulfillmentDate(Date fulfillmentDate) 
    {
        this.fulfillmentDate = fulfillmentDate;
    }

    public Date getFulfillmentDate() 
    {
        return fulfillmentDate;
    }

    public List<Books> getBooksList()
    {
        return booksList;
    }

    public void setBooksList(List<Books> booksList)
    {
        this.booksList = booksList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reservationId", getReservationId())
            .append("userId", getUserId())
            .append("bookId", getBookId())
            .append("reservationDate", getReservationDate())
            .append("status", getStatus())
            .append("fulfillmentDate", getFulfillmentDate())
            .append("booksList", getBooksList())
            .toString();
    }
}
